package br.gov.mi.corporativo.dominio.comum;

// default package
// Generated 12/11/2014 10:19:36 by Hibernate Tools 4.0.0

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Immutable;

/**
 * PessoaFisica generated by hbm2java
 */
@Entity @Immutable
@Table(schema="DES_COMUM",name = "PESSOA_FISICA")
public final class PessoaFisica implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 4112194443041509509L;
	
	@Id
	@Column(name = "ID_PESSOA_FISICA", unique = true, nullable = false, precision = 22, scale = 0)
	private Long idPessoaFisica;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_UF_NASCIMENTO")
	private Uf uf;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PAIS_NASCIMENTO")
	private Pais pais;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_TRATAMENTO")
	private Tratamento tratamento;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PESSOA", nullable = false)
	private Pessoa pessoa;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_PROFISSAO")
	private Profissao profissao;
	
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "ID_MUNICIPIO_NASCIMENTO")
	private Municipio municipio;
	
	@Column(name = "NM_PESSOA_FISICA", nullable = false, length = 150)
	private String nmPessoaFisica;
	
	@Temporal(TemporalType.DATE)
	@Column(name = "DT_NASCIMENTO", length = 7)
	private Date dtNascimento;
	
	@Column(name = "ST_SEXO", length = 1)
	private String stSexo;
	
	@Column(name = "CS_GRUPO_SANGUINEO", length = 1)
	private String csGrupoSanguineo;
	
	@Column(name = "CS_FATOR_RH", length = 1)
	private String csFatorRh;
	
	@Column(name = "CS_COR", length = 1)
	private String csCor;
	
	@Column(name = "CS_ESTADO_CIVIL", length = 1)
	private String csEstadoCivil;
	
	@Column(name = "NM_PAI", length = 150)
	private String nmPai;
	
	@Column(name = "NM_MAE", length = 150)
	private String nmMae;

	public PessoaFisica() {
	}

	public PessoaFisica(Long idPessoaFisica, Pessoa pessoa,
			String nmPessoaFisica) {
		this.idPessoaFisica = idPessoaFisica;
		this.pessoa = pessoa;
		this.nmPessoaFisica = nmPessoaFisica;
	}

	public PessoaFisica(Long idPessoaFisica, Uf uf, Pais pais,
			Tratamento tratamento, Pessoa pessoa, Profissao profissao,
			Municipio municipio, String nmPessoaFisica, Date dtNascimento,
			String stSexo, String csGrupoSanguineo, String csFatorRh,
			String csCor, String csEstadoCivil, String nmPai,
			String nmMae) {
		this.idPessoaFisica = idPessoaFisica;
		this.uf = uf;
		this.pais = pais;
		this.tratamento = tratamento;
		this.pessoa = pessoa;
		this.profissao = profissao;
		this.municipio = municipio;
		this.nmPessoaFisica = nmPessoaFisica;
		this.dtNascimento = dtNascimento;
		this.stSexo = stSexo;
		this.csGrupoSanguineo = csGrupoSanguineo;
		this.csFatorRh = csFatorRh;
		this.csCor = csCor;
		this.csEstadoCivil = csEstadoCivil;
		this.nmPai = nmPai;
		this.nmMae = nmMae;
	}

	
	public Long getIdPessoaFisica() {
		return this.idPessoaFisica;
	}

	
	public Uf getUf() {
		return this.uf;
	}

	
	public Pais getPais() {
		return this.pais;
	}

	
	public Tratamento getTratamento() {
		return this.tratamento;
	}

	
	public Pessoa getPessoa() {
		return this.pessoa;
	}

	
	public Profissao getProfissao() {
		return this.profissao;
	}

	
	public Municipio getMunicipio() {
		return this.municipio;
	}

	
	public String getNmPessoaFisica() {
		return this.nmPessoaFisica;
	}

	
	public Date getDtNascimento() {
		return this.dtNascimento;
	}

	
	public String getStSexo() {
		return this.stSexo;
	}

	
	public String getCsGrupoSanguineo() {
		return this.csGrupoSanguineo;
	}

	
	public String getCsFatorRh() {
		return this.csFatorRh;
	}

	
	public String getCsCor() {
		return this.csCor;
	}

	
	public String getCsEstadoCivil() {
		return this.csEstadoCivil;
	}

	
	public String getNmPai() {
		return this.nmPai;
	}

	
	public String getNmMae() {
		return this.nmMae;
	}

}
